package vista;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

import modelo.Juego;

import fiuba.algo3.titiritero.modelo.GameLoop;
import fiuba.algo3.titiritero.modelo.SuperficieDeDibujo;

public class VistaJuego extends JFrame implements SuperficieDeDibujo{
	private static final long serialVersionUID = 1L;
    private GameLoop controlador;
    private VistaMenusMuniciones vistaMenus;
	private VistaPuntaje vistaPuntaje;
	private VistaTurnos vistaTurnos;
	
	public VistaJuego (Juego juego,GameLoop gameLoop){	
		
		this.controlador = gameLoop;
		this.setForeground(new Color(0, 0, 0));
		this.setBounds(102,53, Juego.WIDHT_WINDOWS, Juego.HEIGHT_WINDOWS);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.getContentPane().setLayout(null);	
		this.setTitle("Batalla Navalgo!");
		this.addBotonDetener();
		this.addBotonIniciar();
		this.vistaPuntaje = new VistaPuntaje(juego,this);
		this.vistaPuntaje.addVistaDelPuntaje();
		this.vistaMenus = new VistaMenusMuniciones(this,gameLoop,juego,this.vistaPuntaje);
		this.vistaMenus.addMenus();
		this.vistaTurnos = new VistaTurnos(this,juego);
		vistaTurnos.addVisorTurnos();
		this.setVisible(true);		
		

		
	}
		
	
	
	@Override
	public void actualizar() {
		this.repaint();
	}
	
	public void agregarVista(JPanel panel){
		this.getContentPane().add(panel);
	}
	
	private void addBotonDetener() {

		JButton btnDetener = new JButton("Pausa");
		btnDetener.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				controlador.detenerEjecucion();
				Timer timerTurnos = vistaTurnos.getTimerActualizadorDeTurnos();
				Timer timerPuntos = vistaPuntaje.getTimerActualizadorDePuntaje();
				timerTurnos.stop();
				timerPuntos.stop();
			}
		});
		btnDetener.setBounds(VistaEscenario.WIDHT_ESCENARIO + 100, 220, 77, 25);
		this.getContentPane().add(btnDetener);
	}

	private void addBotonIniciar() {
		
		JButton btnIniciar = new JButton("Iniciar");
		btnIniciar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				controlador.iniciarEjecucion();
				Timer timerTurnos = vistaTurnos.getTimerActualizadorDeTurnos();
				Timer timerPuntos = vistaPuntaje.getTimerActualizadorDePuntaje();
				timerTurnos.start();
				timerPuntos.start();
				
			}
		});
		btnIniciar.setBounds(VistaEscenario.WIDHT_ESCENARIO + 100, 180, 77, 25);
		this.getContentPane().add(btnIniciar);
	}

}
